/********************************************************************* * * Copyright (C) 2002 Andrew Khan * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ package jxl.write; import jxl.biff.DisplayFormat; /** * Static class which contains Excels predefined Date formats */ public final class DateFormats { /** * Inner class which holds the format index */ private static class BuiltInFormat implements DisplayFormat { /** * The index of this date format */ private int index; /** * The excel format */ private String formatString; /** * Constructor * * @param i the index * @param s the format string */ public BuiltInFormat(int i, String s) { index = i; formatString = s; } /** * Gets the format index * * @return the format index */ public int getFormatIndex() { return index; } /** * Interface method which determines whether the index has been set. For * built ins this is always true * * @return TRUE, since this is a built in format */ public boolean isInitialized() { return true; } /** * Initialize this format with the specified position. Since this is a * built in format, this is always initialized, so this method body for * this is empty * * @param pos the position in the array */ public void initialize(int pos) { } /** * Determines whether this format is a built in format * * @return TRUE, since this is a built in format */ public boolean isBuiltIn() { return true; } /** * Accesses the excel format string which is applied to the cell * Note that this is the string that excel uses, and not the java * equivalent * * @return the cell format string */ public String getFormatString() { return formatString; } /** * Standard equals method * * @param o the object to compare * @return TRUE if the two objects are equal, FALSE otherwise */ public boolean equals(Object o) { if (o == this) { return true; } if (!(o instanceof BuiltInFormat)) { return false; } BuiltInFormat bif = (BuiltInFormat) o; return index == bif.index; } /** * Hash code implementation * * @return the hash code */ public int hashCode() { return index; } } // The available built in date formats /** * The default format. This is equivalent to a date format of "M/d/yy" */ public static final DisplayFormat FORMAT1 = new BuiltInFormat(0x0e, "M/d/yy"); /** * The default format. This is equivalent to a date format of "M/d/yy" */ public static final DisplayFormat DEFAULT = FORMAT1; /** * Equivalent to a date format of "d-MMM-yy" */ public static final DisplayFormat FORMAT2 = new BuiltInFormat(0xf, "d-MMM-yy"); /** * Equivalent to a date format of "d-MMM" */ public static final DisplayFormat FORMAT3 = new BuiltInFormat(0x10, "d-MMM"); /** * Equivalent to a date format of "MMM-yy" */ public static final DisplayFormat FORMAT4 = new BuiltInFormat(0x11, "MMM-yy"); /** * Equivalent to a date format of "h:mm a" */ public static final DisplayFormat FORMAT5 = new BuiltInFormat(0x12, "h:mm a"); /** * Equivalent to a date format of "h:mm:ss a" */ public static final DisplayFormat FORMAT6 = new BuiltInFormat(0x13, "h:mm:ss a"); /** * Equivalent to a date format of "H:mm" */ public static final DisplayFormat FORMAT7 = new BuiltInFormat(0x14, "H:mm"); /** * Equivalent to a date format of "H:mm:ss" */ public static final DisplayFormat FORMAT8 = new BuiltInFormat(0x15, "H:mm:ss"); /** * Equivalent to a date format of "M/d/yy H:mm" */ public static final DisplayFormat FORMAT9 = new BuiltInFormat(0x16, "M/d/yy H:mm"); /** * Equivalent to a date format of "mm:ss" */ public static final DisplayFormat FORMAT10 = new BuiltInFormat(0x2d, "mm:ss"); /** * Equivalent to a date format of "H:mm:ss" */ public static final DisplayFormat FORMAT11 = new BuiltInFormat(0x2e, "H:mm:ss"); /** * Equivalent to a date format of "mm:ss.S" */ public static final DisplayFormat FORMAT12 = new BuiltInFormat(0x2f, "H:mm:ss"); }